package com.um2.mauction.java;

import java.io.IOException;
import java.util.List;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import com.um2.mauction.entity.Categorie;
import com.um2.mauction.entity.Vente;
import com.um2.mauction.session.impl.CategorieManagerBean;
import com.um2.mauction.session.impl.VenteManagerBean;
import com.um2.mauction.session.remote.CategorieManagerRemote;
import com.um2.mauction.session.remote.VenteManagerRemote;

public class ListVentesCategoriesAction extends Action {
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		ActionForward resultat = mapping.findForward("index");
		ActionErrors errors = new ActionErrors();

		VenteManagerRemote vmanager = null;

		String cat = request.getParameter("id_cat");

		try {
			InitialContext ic = new InitialContext();

			// Liste des catégories
			CategorieManagerRemote cmanager = (CategorieManagerRemote) ic
					.lookup(CategorieManagerBean.RemoteJNDIName);
			List<Categorie> listeCategories = cmanager.getAllCategories();

			// Liste des ventes
			vmanager = (VenteManagerRemote) ic
					.lookup(VenteManagerBean.RemoteJNDIName);

			List<Vente> listeVentes;
			if (cat != null && !cat.equals(""))
				listeVentes = vmanager.getAllVentesOfCategory(Integer
						.parseInt(cat));
			else
				listeVentes = vmanager.getAllVentes();

			if (listeVentes == null) {
				errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
						"list.listeventes.null"));
				resultat = new ActionForward(mapping.getInput());
			} else if (listeCategories == null) {
				errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
						"list.listecategories.null"));
				resultat = new ActionForward(mapping.getInput());
			} else {
				// LinkedList listeVentes = new LinkedList();
				// for(int i = 0; i<listeV.size(); i++)
				// {
				// LinkedList produitEnVente = new LinkedList();
				// produitEnVente.add(listeV.get(i).getItem().getNomProduit());
				// produitEnVente.add(listeV.get(i).getItem().getCategorie().getNomCategorie());
				// produitEnVente.add(listeV.get(i).getMontantInitial());
				// produitEnVente.add(listeV.get(i).getMontantReserve());
				// produitEnVente.add(listeV.get(i).getDateDebut());
				// produitEnVente.add(listeV.get(i).getDuree());
				// produitEnVente.add(listeV.get(i).getModeEnvoi());
				// produitEnVente.add(listeV.get(i).getCoutEnvoi());
				// listeVentes.add(produitEnVente);
				// }

				// if (mapping.getScope().equals("request"))
				// {

				// Enregistrement de la liste des ventes dans la variable
				request.setAttribute("listeCategories", listeCategories);

				// Enregistrement de la liste des ventes dans la variable
				request.setAttribute("listeVentes", listeVentes);
				System.out.println("lv: " + listeVentes);
				// }
				// else
				// {
				// errors.add(ActionErrors.GLOBAL_MESSAGE, new
				// ActionMessage("list.listeventes.null"));
				// resultat = new ActionForward(mapping.getInput());
				// System.out.println("type non request");
				// }
				// response.setParameter("listeVentes",listeVentes);
			}
		} catch (NamingException ex) {
			System.out.println("ERREUR!!" + ex.getMessage());
		}
		if (!errors.isEmpty())
			saveErrors(request, errors);
		return resultat;
	}
}